home *** CD-ROM | disk | FTP | other *** search
-
- ΓòÉΓòÉΓòÉ 1. ROBOSAVE User's Guide ΓòÉΓòÉΓòÉ
-
- ROBOSAVE v3.04 1993/11/9 by Dick Kurtz and Jeff Knauth
-
- This edition of the User's Guide is for the Employee Written Software release of ROBOSAVE.
-
-
- (c) Copyright International Business Machines Corporation 1994.
- All rights Reserved.
-
-
- ΓòÉΓòÉΓòÉ 1.1. What ROBOSAVE Does ΓòÉΓòÉΓòÉ
-
- ROBOSAVE is a tool which allows you to quickly and easily back up the OS/2 2.x
- Desktop. In addition you can save a limited number of user-specified files.
- If problems occur later, you can easily restore the saved information. Because
- it is so easy to do a ROBOSAVE, you will find that doing frequent backups is
- quite painless.
-
- The OS/2 2.x Desktop consists of control information for such things as
- folders, program objects, printer objects, and shadows. It also contains data
- about the tailoring you have done for colors, fonts, titles, window positions,
- associations, and much more. You may have invested a significant amount of
- time in adjusting the Desktop to your preferences. ROBOSAVE provides a good way
- to protect that investment.
-
-
- ΓòÉΓòÉΓòÉ 1.2. Overview ΓòÉΓòÉΓòÉ
-
- Using ROBOSAVE is very simple. Here is a summary. Details are in following
- sections, together with suggestions for how you might plan ROBOSAVE backups for
- your system.
-
- o Installation
-
- - Download and unzip ROBOSAVE's zip file into a directory of your choice
- - Set up a ROBOSAVE profile; you can use ROBOSAVE.SMP as a model
-
- o Doing a save
-
- - Stabilize the Desktop by doing a shutdown and IPL
- - Invoke ROBOSAVE, using the profile you created above
-
- o Doing a restore
-
- - Bring up an OS/2 environment suitable for doing ROBOREST
- - Switch to the save drive and directory
- - Invoke ROBOREST
- - ReIPL
-
-
- ΓòÉΓòÉΓòÉ 1.3. What ROBOSAVE Does Not Do ΓòÉΓòÉΓòÉ
-
- ROBOSAVE does not do a full backup of all the data on your system. Instead it
- saves only certain key information. Part of this information is saved
- automatically. Part you must specify thru a profile. A sample ROBOSAVE
- profile is provided; however, there may be other critical files for your
- applications that you should specify in your own profile. Restoring this
- information is often sufficient to get your system working again very quickly.
- Of course doing a full backup provides a better guarantee of a full recovery.
- However, doing a full backup requires much more time and more space on your
- backup medium.
-
- From ROBOSAVE's point of view the Desktop consists of the Desktop directory and
- all the files and directories under it. This is the information ROBOSAVE will
- save automatically. You must be careful about what information you either
- remove from or add to that directory tree.
-
- If you move an object from the Desktop to some location that is not in the
- Desktop, ROBOSAVE will NOT save that object. For example, suppose your Desktop
- directory is C:\DESKTOP. The standard OS/2 install will create a Productivity
- folder in the OS/2 System folder. Suppose you use the Workplace Shell Drives
- facility to drag the Productivity folder to some location not in the Desktop,
- let's say into a C:\MISC directory. From a (FAT) file system point of view,
- you just moved the C:\DESKTOP\OS!2_SYS\PRODUCTI directory to C:\MISC\PRODUCTI.
- It is no longer under C:\DESKTOP and will not be automatically saved by
- ROBOSAVE. Even if you create a shadow on the Desktop of the moved Productivity
- folder, the moved folder will not be saved because it is no longer in the
- Desktop. However, if all you do is move the object to another place in the
- Desktop, e.g., suppose you move it from the OS/2 System folder to the
- Information folder (assuming this folder itself is still in the Desktop), then
- the object is still in the Desktop structure and will be automatically saved by
- ROBOSAVE.
-
- This works both ways. If you create directories or files in the Desktop
- directory tree, ROBOSAVE will consider all that information as part of the
- Desktop and will save it automatically. Thus you should be careful not to put
- a bunch of "extraneous" things in the Desktop unless you really do want all
- that information saved every time you do a ROBOSAVE.
-
- ROBOSAVE is not intended to migrate a Desktop from one release (or CSD level)
- of OS/2 to another. The control information that ROBOSAVE saves from one
- release of OS/2 may very well not be compatible with another OS/2 release.
- Similarly, if after you do a ROBOSAVE you then change any fundamental system
- characteristics (e.g., file system type, display type, or boot drive),
- restoring the old system's data to the new system will not work. ROBOSAVE is
- intended to backup a system and then restore the data to exactly that same
- system.
-
- ROBOSAVE does not save the information used to automatically restart currently
- running programs. This is done to prevent restarting ROBOSAVE itself when the
- restored system is first IPLed. The implication of this is that after your
- system has been restored, you must restart your normally running programs
- yourself for the initial IPL. For subsequent IPLs, those programs will be
- restarted (or not) as usual, depending on the way you have chosen to tailor
- OS/2 for this restart function.
-
-
- ΓòÉΓòÉΓòÉ 1.4. Prerequisites ΓòÉΓòÉΓòÉ
-
- Your operating system must be either OS/2 2.0 or 2.1. ROBOSAVE does not
- support earlier releases, e.g., OS/2 1.3.
-
- REXX is required in order to use ROBOSAVE. REXX is installed in OS/2 by
- default. You can use OS/2 Selective Install to add REXX if it is not already
- present on your system.
-
-
- ΓòÉΓòÉΓòÉ 1.5. Installation ΓòÉΓòÉΓòÉ
-
- Download ROBOSAVE's zip file in binary and unzip it into a directory of your
- choice. Either this directory must be in your PATH, or it should be the
- current directory when ROBOSAVE is invoked.
-
-
- ΓòÉΓòÉΓòÉ 1.6. ROBOSAVE Profile ΓòÉΓòÉΓòÉ
-
- A profile is required to run ROBOSAVE. See ROBOSAVE.SMP for an example. The
- profile is an ASCII text file which specifies parameters for operating
- ROBOSAVE. Usually you will name your profile ROBOSAVE.PRO, although you can
- give it a different name and then specify that name in the ROBOSAVE command.
-
- The profile controls what files will be saved. If you don't specify the right
- files for saving, they won't be available for restoring -- not good. Please
- invest the time to set up your profile appropriately to begin with, and keep it
- up to date as your application environment changes.
-
- If an "*" is found in column 1 of a line in the profile, that line is treated
- as a comment and is ignored. You should not have any blank lines in the
- profile; a blank line will terminate profile processing. One of the following
- verbs must start each of the non-comment lines of the profile. The verbs can
- be in any order and can be in upper or lower case.
-
- SAVE=directory
- where "directory" specifies the directory in which ROBOSAVE will save the
- files to be backed up, together with certain control information. This
- directory will be created for you if it does not exist. This is a
- required verb; there is no default. Examples: "save=A:\SAVEDATA" and
- "save=E:\SV930922". Later sections of the User's Guide provide guidance
- about choosing a save directory and give details about what is put into
- it.
-
- SAVENUM=number
- where "number" specifies the number of generations of data that can be
- saved in this directory. A new generation is created each time you
- successfully complete ROBOSAVE. When "number" is exceeded, the oldest
- generation is erased and is replaced by the new generation, the data saved
- by the current execution of ROBOSAVE. If you reduce "number", all the
- older generations are erased up to the point where "number" will not be
- exceeded by the new generation. Valid values are 1 thru 9. This is a
- required verb; there is no default.
-
- CLEANUP=B|E
- specifies when old generations should be erased if the "SAVENUM=" number
- is exceeded, as described above. "CLEANUP=B" means erase the data at the
- beginning of the ROBOSAVE operation, i.e., before the new generation is
- created. "CLEANUP=E" means erase the old data at the end, i.e., after the
- new generation has been created. The default is "CLEANUP=E". Erasing at
- the end is safer, in that the old data will not be erased unless the new
- generation has been successfully saved. However, erasing at the beginning
- might be necessary if the save directory is on a drive with little
- available space; you might need to erase the old generation first to make
- room for the new generation.
-
- LOG=P|T
- specifies the location of the ROBOSAVE.LOG file. This log records all
- ROBOSAVE activity for the save directory specified by the "SAVE" verb.
- "LOG=P" means put the log in the same directory as the ROBOSAVE profile.
- "LOG=T" means put the log in the save directory. The default is "LOG=P".
-
- ROBO=fileid [fileid ...]
- where each "fileid" specifies one or more files to be saved in the save
- directory. Normally the complete fileid (drive, path, and file) should be
- specified, e.g., robo=e:\somedir\myfile.xyz. Multiple fileids can be
- specified on each ROBO= line. Wildcards, both "*" and "?", can be used in
- the same way they are used in the OS/2 COPY command. If there are any
- blanks in the fileid, enclose the entire fileid in double quotes. In
- addition, by enclosing the fileid in brackets, you indicate that
- directories below the one specified in the fileid should also be searched.
- Bracketed fileids can be intermixed with normal fileids on the same line.
- In the following examples, notice the use of double quotes and brackets;
- the quotes must be outside the brackets when both are used.
-
- Profile line Files saved
- -------------------------- ---------------------------------------
- robo=d:\os2\*.ini D:\OS2\OS2.INI, D:\OS2\OS2SYS.INI, etc.
- robo="d:\my dir\my data" D:\MY DIR\MY DATA
- robo=[e:\*.ini] All .INI files on the E: drive
- robo=[g:\my*.*] All files on the G: drive whose names
- start with MY with any extension
- robo="[g:\Down\U ar*.*]" All files in the G:\DOWN directory (and
- all its subdirectories) whose names
- start with "U AR" and any extension
- robo=c:\x.y d:\dir\ccc.y C:\X.Y and D:\DIR\CCC.Y
-
- Examine ROBOSAVE.SMP for a list of additional files you may want to save
- if you installed OS/2 Windows support, Communications Manager, or LAN
- Services.
-
- You should not attempt to save ". SF" files, e.g., "EA DATA. SF".
-
- WARNING: You should be careful with using wildcard characters and/or
- brackets. It is very easy to unintentionally specify many files you don't
- really want to backup. This is especially significant if your save
- directory is on a diskette, which has less space and operates more slowly
- than a hard disk. It is also easy to unintentionally save a file multiple
- times; ROBOSAVE will make a separate copy for each specification, whether
- it was an explicit specification or by wildcards or brackets. Thus,
- specifying both "robo=e:\abc.ini" and "robo=e:\*.ini" would copy ABC.INI
- twice. It is a good idea after doing a ROBOSAVE to examine ROBOSAVE.LOG
- and see exactly which files were copied; then adjust your profile if
- necessary. Needless to say, having something like "robo=c:\*.*" would
- attempt to save far more than you really intended; in fact it would likely
- fail as the process stumbled over certain files that cannot be copied
- normally.
-
-
- ΓòÉΓòÉΓòÉ 1.7. ROBOSAVE Command ΓòÉΓòÉΓòÉ
-
- Here is the syntax of the ROBOSAVE command. If the "/P" parameter is used, it
- must be the last parameter specified.
-
- ROBOSAVE [[fileid]...] [/P=profile]
-
- fileid
- has the same syntax and meaning as when used in a "ROBO=" line in a
- ROBOSAVE profile. Specifying a fileid as a ROBOSAVE command parameter has
- the same effect as specifying it in the profile. Fileids specified in the
- command are logically merged with those from the "ROBO=" lines of the
- profile. If no fileid parameter is specified in the ROBOSAVE command,
- only the fileids from the "ROBO=" lines will be used.
-
- /P=profile
- specifies the profile used by ROBOSAVE. This can be either a complete
- fileid (drive, path, file) or it can be just the drive and path; in the
- latter case the file is considered to be named ROBOSAVE.PRO and it must
- reside in the drive-path directory. If this parameter is not specified,
- the first occurrence of ROBOSAVE.PRO found in the current directory or
- PATH is used.
-
- Here are some examples:
-
- robosave
- robosave /p=d:\os2tools
- robosave e:\myapps\myapp.dat g:\temp\some.stf
- robosave "e:\my dir\my file.dat" "g:\main dir\sub dir"
- robosave e:\os!2_apps\*.ini /p=d:\my2tool\myprof.xyz
- robosave [e:\*.ini] "[g:\Down\This\Road\one way.*]"
-
-
- ΓòÉΓòÉΓòÉ 1.8. Doing a Save ΓòÉΓòÉΓòÉ
-
- After you have installed ROBOSAVE and have built your profile, you can invoke
- it to save your data. In fact, this is the part of ROBOSAVE you will be using
- most often; it is very easy to do. Before doing the save, however, you should
- ensure your Desktop has stabilized. In particular, if you have made Desktop
- changes since you last IPLed, including moving objects around on the Desktop,
- and you want to be sure all this information is captured, you should shut down
- your system cleanly and reIPL. Then you can do the save. This is necessary
- because for some control information, OS/2 will not write the data to disk
- (where it can be copied by ROBOSAVE) until shutdown is done. Other control
- information is written to disk only occasionally, in a lazy-write fashion.
- Doing a shutdown will force that information to disk, too. Of course after you
- reIPL, don't start making more Desktop changes before doing the ROBOSAVE. It is
- preferable to have as little as possible going on while ROBOSAVE is running to
- lessen the chance that any data will be changing while it is being saved. If
- that happens, the saved data might be inconsistent and any subsequent restore
- from it might not produce what you want. ROBOSAVE runs quickly. Be patient
- and let it operate without interference.
-
- Now to do the save. Normally you just enter "ROBOSAVE" at an OS/2 command
- prompt, either full screen or windowed. If necessary, you can specify ROBOSAVE
- command parameters, as described in the preceding section. However most people
- will specify all fileids via "ROBO=" lines in their profile and will put their
- profile in a directory in their PATH; if you do this, no command parameters are
- necessary -- you can just say "ROBOSAVE".
-
- If you want to be fancier about ROBOSAVE invocation, you can build an OS/2
- program object and then doubleclick on its icon to do a ROBOSAVE. To build such
- an object, drag a program object from the Templates folder. Then fill in the
- blanks as follows:
-
- o On the Program page:
-
- - Set "Path and file name" to "x:\path\ROBOSAVE.CMD". Replace "x:\path"
- with the drive and directory where you put ROBOSAVE.
- - Set "Parameters" with whatever parameters you need (usually leave this
- blank).
- - Set "Working directory" with ROBOSAVE's directory, i.e., with your values
- for the "x:\path" mentioned in the first item.
-
- o On the Session page:
-
- - Uncheck "Close window on exit". This is necessary to allow you to see any
- error messages before the window is closed. When you are finished with
- ROBOSAVE, just close the window as you normally would, e.g., by
- doubleclicking on the system icon in the upper left corner of the window.
-
- o On the General page:
-
- - Change "Title" to whatever you want to show up under the program's icon.
- If you have done all the preceding steps, the icon shipped with ROBOSAVE
- should already be displayed.
-
- WARNING: Needless to say, if you wait to do a backup until AFTER you have had a
- problem, then any restore with that backup data will just put you right back in
- the problem state again. Thus you need to do backups BEFORE you have a
- problem. Generally, you should do a backup after any major change if you are
- satisfied with the results of that change. This will give you a checkpoint of
- a system that you are now satisfied with, but before you or some outside force
- messes it up. Of course this assumes you have been following this procedure
- all along and thus already have a good backup of the system BEFORE making the
- major change. If you don't have such a BEFORE-the-change backup already, then
- make one first. Because ROBOSAVE is so easy to use and takes only a few
- minutes at most, it is very easy to do all this. Just be sure to label your
- backups so you'll know what you've got. We recommend doing major backups to
- diskettes (freshly formatted and still empty) -- one backup per diskette.
-
-
- ΓòÉΓòÉΓòÉ 1.9. Doing a Restore ΓòÉΓòÉΓòÉ
-
- Suppose disaster has just struck. Maybe you accidentally powered off your
- system without doing a shutdown first, or possibly a power outage occurred.
- Both of these can result in a corrupted Desktop. Or maybe you got
- overenthusiatic while you were tidying up your Desktop and dropped the wrong
- thing on the shredder. Or maybe you encountered a programming bug. Or maybe
- your hardware hiccupped. Or ... you get the idea. If you have been faithfully
- doing ROBOSAVEs and have been saving the right data, you can probably recover
- your system completely and quickly. It is important to realize that the system
- will be restored back to the point it was at when you did the ROBOSAVE for that
- data. If you made any changes after that ROBOSAVE, those changes may be lost.
- This points out the desirability of doing frequent ROBOSAVEs and keeping your
- profile up to date.
-
- Part of the data created by ROBOSAVE in your save directory is a ROBOREST.CMD.
- Executing that command will restore the data saved by the ROBOSAVE you issued
- most recently to that save directory. If you have saved multiple generations
- in the same save directory, there will be a ROBOREST.CM1, a ROBOREST.CM2, etc.
- These represent the next older generation, and the next older beyond that,
- etc., with the oldest having the highest .CMn number. If you want to recover a
- previous generation instead of the most recent, just rename ROBOREST.CMD to
- some other name, e.g., ROBOREST.CUR, and then rename the desired ROBOREST.CMn
- to ROBOREST.CMD. You can examine ROBOSAVE.LOG to see when each save was done
- and what files were associated with each. You can doublecheck the chosen
- command file to ensure it is the desired one.
-
- Before invoking ROBOREST, you must first set up the proper OS/2 environment.
- You cannot simply issue ROBOREST from an OS/2 command prompt in your normal
- system since some of the files ROBOREST will try to replace are in use by the
- normal system. You must establish an environment independent of your normal
- system and issue ROBOREST from there. Fortunately that is easy to do. Below
- are three different techniques you can use. They produce equivalent results.
- Use the one that is most convenient for you.
-
- ROBOREST will attempt to verify that you have established a proper environment.
- If it detects something is wrong, it will display an error message and stop the
- procedure without making any changes to your system. Part of the recovery
- procedure involves erasing the old (possibly corrupted) Desktop before
- restoring the saved Desktop. You will be prompted for final authorization
- before this is done. If you answer anything other than "YES", the ROBOREST
- procedure will stop and no changes will be made to your system.
-
- You should make sure you don't have a directory in the Desktop tree as the
- current directory for its drive. For example, if C:\DESKTOP is your OS/2
- Desktop directory, make sure you haven't done a CHANGEDIR on C: to \DESKTOP or
- to any of the directories under it. Having any of those directories as the
- current directory would interfere with the deletion of the Desktop tree.
- ROBOREST (ROBOSVUT) will fail if you make this mistake and will issue an error
- message. If this happens, just do a "CD \" and reissue ROBOREST.
-
- Except for the OS2.INI and OS2SYS.INI files, ROBOREST will restore the same
- Readonly, System, and Hidden attributes for each file that existed when you
- saved the file with ROBOSAVE.
-
- Restoring the Desktop - Method 1
-
- This method requires you to have the Install and DISK 1 diskettes for the
- version of OS/2 you booted when you did the save. It is required that the OS/2
- level of the diskettes must match exactly the level of the system being
- restored, including the CSD level. (In fact you may be able to get away with a
- different level sometimes, but other times you can't. Since failure can result
- in a corrupted system, we require the levels to be the same.) Instead of using
- the actual installation diskettes, you might use something equivalent, e.g., a
- diskette you have created with the BOOTOS2 tool (also known as BOOT2X); the
- diskette must be at the correct OS/2 level, of course. Or you might boot from
- another partition (at the correct OS/2 level, of course).
-
- - Boot from the OS/2 2.x Install and DISK 1 diskettes.
- - ESC to the OS/2 prompt when allowed.
- - Place your "save" diskette in A: if restoring from diskette.
- - Change to the "save" drive you will restore from.
- - Change to the "save" directory containing ROBOREST.CMD.
- - Invoke ROBOREST; there are no parameters.
- - Respond YES when prompted to delete the Desktop.
- - Re-boot when the restore is complete.
-
- Restoring the Desktop - Method 2
-
- This method requires that the SHFTRN package be installed on your system. It
- must be on your hard drive and your CONFIG.SYS must have been edited to place
- the call to SHIFTRUN in it. This method is faster than Method 1 and does not
- require the two OS/2 installation diskettes.
-
- - Get the SHFTRN package from the same place you got ROBOSAVE.
- - Download and install it as directed.
- - Re-boot.
- - Press Left-Shift when the SHIFTRUN timer appears, then release it.
- - Place your "save" diskette in A: if restoring from diskette.
- - Change to the "save" drive you will restore from.
- - Change to the "save" directory containing ROBOREST.CMD.
- - Invoke ROBOREST; there are no parameters.
- - Respond YES when prompted to delete the Desktop.
- - Re-boot when the restore is complete.
-
- Restoring the Desktop - Method 3
-
- This method is similar to using SHFTRN, but does not require the SHFTRN tool.
- It is quick and straightforward. The tradeoff is that you must edit CONFIG.SYS
- before using ROBOREST. You could make this your standard CONFIG.SYS, but then
- you would need to do an EXIT at the command prompt for every IPL. SHFTRN
- doesn't require that.
-
- - Edit CONFIG.SYS to put this line at the end,
- where "x:" is your boot drive:
- CALL=x:\OS2\CMD.EXE /K
- - IPL; eventually you will get a command prompt.
- - Place your "save" diskette in A: if restoring from diskette.
- - Change to the "save" drive you will restore from.
- - Change to the "save" directory containing ROBOREST.CMD.
- - Invoke ROBOREST; there are no parameters.
- - Respond YES when prompted to delete the Desktop.
- - Re-boot when the restore is complete.
-
-
- ΓòÉΓòÉΓòÉ 1.10. Recovery of Individual Files ΓòÉΓòÉΓòÉ
-
- ROBOSAVE can also be useful if you have lost one or a few of your saved files
- instead of losing the whole Desktop. For example, if you have accidentally
- erased your CONFIG.SYS, you can look at ROBOSAVE.LOG to see the name under
- which it was copied to your save directory. Then just copy it back to your
- boot drive and rename it to CONFIG.SYS.
-
-
- ΓòÉΓòÉΓòÉ 1.11. Choosing a Save Directory ΓòÉΓòÉΓòÉ
-
- There are some decisions you need to make when choosing a save directory. You
- can place the directory either on a diskette or on a hard drive. Placing the
- data on a diskette isolates it from the system and gives you some additional
- reliability. For example, if the system hard drive itself fails, you can
- reinstall OS/2 and your applications on a repaired drive and then use ROBOSAVE
- to reapply all your tailoring.
-
- You can easily and inexpensively keep multiple generations of backups on
- separate diskettes with one generation per diskette. Then just rotate thru the
- set of diskettes; when you are ready to do the next ROBOSAVE, format the
- diskette that holds the oldest generation and use it for the new save. Then
- even if your most recent backup is lost because for some reason the diskette
- holding it is no longer readable (it happens more often than you would like to
- think), you can go back to the next most recent backup on a separate diskette.
-
- On the other hand, saving to a diskette is much slower than saving to a hard
- drive. Also, if the amount of data to be saved is large, you may exceed a
- single diskette's capacity; ROBOSAVE does not support diskette spanning. For a
- typical system the diskette space constraint will not be a problem,
- particularly if you dedicate each diskette to a single generation of saved
- data. Normally the amount of data that should be saved is well under a
- megabyte. However, you might have a special case and have a large amount of
- data to save.
-
- A good technique is to combine the two media approaches by making frequent
- (quick) saves to a hard drive, but making occasional saves to the next
- available diskette, e.g., after you have made some particularly important
- change to your system. Also, if your saved data is too large for a diskette,
- you can save it to a hard drive and then later use a data compression program,
- such as PKZIP, to produce a file small enough to store offline on a diskette.
- Note there was a problem in OS/2 2.0 in which the OS2.INI and OS2SYS.INI files
- tended to grow very large; that problem seems to have been much alleviated in
- OS/2 2.1.
-
- Another consideration with choosing a save directory is whether to use the root
- directory as the save directory, even on a dedicated diskette. Generally that
- is not a good idea since for the FAT file system (which is the system used for
- diskettes) there is a limit to how many files can be stored in the root
- directory. The limit depends on the size of the hard disk or diskette
- involved, but is typically not much greater than several hundred files. On the
- other hand, a subdirectory does not have such a limit. Thus it is a good idea
- to specify something like "SAVE=A:\SAVEDIR" rather than "SAVE=A:\" in your
- profile.
-
-
- ΓòÉΓòÉΓòÉ 1.12. Contents of the Save Directory ΓòÉΓòÉΓòÉ
-
- In your ROBOSAVE profile you designate a save directory thru the "SAVE=" verb.
- When you invoke ROBOSAVE, Desktop data and the files you specified are saved
- there, together with some ROBOSAVE control information. Here are the types of
- files you may see in the save directory. Each "n" represents a decimal digit.
-
- nnnnnnnn.FIL - A "robo=" file or a file from a Desktop directory
- nnnnnnnn.EAS - Extended Attributes from a file or Desktop directory
- ROBOREST.CMD - Restore command created by the most recent ROBOSAVE
- ROBOREST.CMn - Restore command created by a previous ROBOSAVE
- ROBOSVUT.EXE - Module to check the OS/2 state and erase the Desktop
- ROBOSAVE.LOG - Records all ROBOSAVE activity for this save directory
- ROBOSAVE.MRK - File containing last used nnnnnnnn value
-
- All saved files and all files holding split extended attributes are named with
- a numeric filename (nnnnnnnn) when put into the save directory. The numeric
- value is incremented as each file is created. A check is made to ensure that
- the next value to be used is not already in use in this save directory; if it
- is in use, the value is incremented until a free value is found. Using a
- numeric name instead of the real name solves several problems. It avoids
- ambiguity when two files with the same name are saved from different
- directories, or when the same file is saved multiple times in multiple
- generations. It also allows files with long HPFS names to be easily saved in a
- FAT save directory, e.g., on a diskette. The original name is restored by the
- ROBOREST.CMD when it is executed. You can see the correspondence between the
- nnnnnnnn names and the real names by looking at ROBOSAVE.LOG or the appropriate
- ROBOREST command.
-
- The "SAVENUM=" verb in the ROBOSAVE profile controls how many generations of
- data will be kept in the save directory. ROBOREST.CMD is associated with the
- most recent ROBOSAVE. Each ROBOREST.CMn file is a renamed ROBOREST.CMD that is
- associated with a preceding generation. When the number of generations exceeds
- the "SAVENUM=" value, the oldest ROBOREST.CMn file and all the files it points
- to will be deleted from the save directory. For example, if you have
- SAVENUM=3, the following ROBOREST.CMn files would be kept in the "SAVE="
- directory.
-
- ROBOREST.CMD --> most recent
- ROBOREST.CM1 --> 2nd most recent
- ROBOREST.CM2 --> 3rd most recent
-
- If you run ROBOSAVE again, ROBOREST.CM2 and all the files it points to will be
- deleted. ROBOREST.CM1 will be renamed to ROBOREST.CM2 and ROBOREST.CMD will be
- renamed to ROBOREST.CM1. A new ROBOREST.CMD will be written containing
- commands to restore the data saved by the current run.
-
-
- ΓòÉΓòÉΓòÉ 1.13. ROBOSVUT Utility ΓòÉΓòÉΓòÉ
-
- ROBOSVUT.EXE is a utility module which is used by both ROBOSAVE.CMD and
- ROBOREST.CMD. It accesses some low-level OS/2 services that are not directly
- available thru OS/2 commands or REXX functions.
-
- ROBOSAVE.CMD uses ROBOSVUT to copy files which for some reason cannot be copied
- by the OS/2 COPY command. For example, this can happen if a file has already
- been opened by some other process at the time ROBOSAVE tries to COPY it. In
- that case you will see a message from ROBOSAVE.CMD that the COPY failed and
- that now ROBOSVUT will be tried. ROBOSVUT will usually succeed in this
- situation. ROBOSAVE.CMD will also use ROBOSVUT to copy files that have been
- marked with the Hidden or System attribute; OS/2 COPY cannot find such files.
- A consideration with using ROBOSVUT to copy a file is that it will not save the
- file's extended attributes. For the files ROBOSVUT is typically used to save,
- that is not important because they do not have extended attributes.
-
- ROBOREST.CMD uses ROBOSVUT to verify the OS/2 environment before proceeding.
- ROBOSVUT will check that the right level of OS/2 has been IPLed to do the
- ROBOREST; it must be the level that was used to do the ROBOSAVE. This check
- will detect most errors, but it will not detect if there is a CSD mismatch.
- ROBOSVUT will also verify that the OS/2 Workplace Shell is not active for the
- Desktop being restored; if it were active, the restore would very likely be
- unsuccessful, or at least the results would be unpredictable. (Note that the
- Workplace Shell CAN be active for a different Desktop; thus it is valid to IPL
- from a different partition with its own Desktop to do the ROBOREST of the
- inactive partition you want to recover.) Finally, if all the tests are passed,
- the user will be prompted for authorization to erase the Desktop to prepare a
- clean slate for the restoration of the saved Desktop. If the user answers
- "YES", ROBOSVUT will erase the Desktop directory tree and then return to
- ROBOREST, which will then do the actual restore.
-
- Here are the return codes from ROBOSVUT.EXE. If an OS/2 function returns an
- error code to ROBOSVUT, both the OS/2 function name and the returned error code
- are displayed in addition to ROBOSVUT's own return code from the following
- list.
-
- 1 - Error. Opening source file for reading.
- 2 - Error. Opening target file for writing.
- 6 - Error. Unable to clear attributes on target.
- 11 - Error. DosAllocMem failed.
- 12 - Error. DosQuery failed for source.
- 13 - Error. DosQuery failed for target.
- 14 - Error. Open (READONLY) failed for target.
- 15 - Error. Read failed for source.
- 16 - Error. Write failed for target. Target disk full?
- 17 - Error. Close failed for target.
- 20 - Error. Unable to update attributes/timestamp for target.
- 21 - Error. VERIFY_COPY failed.
- 100 - Copy was successful.
- 199 - Desktop deleted successfully for ERASE_DESKTOP.
- 200 - User answered "NO" to prompt for ERASE_DESKTOP.
- 201 - Error. DosFindFirst failed for directory.
- 202 - Error. DosFindFirst found other than "." entry.
- 203 - Error. DosDelete failed.
- 204 - Error. DosFindNext failed.
- 205 - Error. DosFindClose failed.
- 206 - Error. DosDeleteDir failed.
- 207 - Error. Maximum number of DosFindFirst/DosFindNexts exceeded.
- 251 - Error. DosQuerySysInfo failed.
- 252 - Error. DosOpen failed for test file.
- 253 - Error. DosClose failed for test file.
- 254 - Error. DosSetCurrentDir failed.
- 300 - Error. DosOpen of test file detected Workplace Shell open.
- 301 - Error. OS/2 version mismatch between ROBOSAVE and ROBOREST.
-
- Note: If Ctrl-Break is pressed while ROBOSVUT is working or if the user
- selects "End the program" for an OS/2 disk error prompt, a 99
- can be returned by the system to the invoker of ROBOSVUT.
-